$(document).ready(function(){
    var total = 0;
  
    
   $("#editar_venda").validate({
        onkeyup: false,
        errorClass: 'error',
        validClass: 'valid',
        highlight: function(element) {
            $(element).closest('div').addClass("f-error");
        },
        unhighlight: function(element) {
            $(element).closest('div').removeClass("f-error");
        },
        errorPlacement: function(error, element) {
            $(element).closest('div').append(error);
        },
        rules: {
            nome: {
                required: true
            },
            
            email: {
                required: true,
                email:true,
                valida_email:true
            },
            forma_pagamento: {
                required: true
            },
            messages: {
            }
        }
    });

    var cache_clientes = {};
    
    if ($("#nome").length > 0) {
        $("#nome").autocomplete({
            source:
                    function(request, response) {
                        var term = request.term;
                        if (term in cache_clientes) {
                            response(cache_clientes[ term ]);
                            return;
                        }
                        $.ajax({
                            dataType: "json",
                            url: $('#base_url').val() + '/vendas/busca_cliente/',
                            data: 'nome=' + request.term,
                            type: 'POST',
                            success: function(data) {

                                cache_clientes[ term ] = data;
                                response(data);
                                
                            },
                            error: function(data) {

                            }
                        });
                    },
            minLength: 2,
            select: function(event, ui) {

                $("#cliente_id").val(ui.item.id);
                $("#nome").val(ui.item.nome);
                $("#cpf").val(ui.item.cpf);
                
                return false;

            }
        }).data("ui-autocomplete")._renderItem = function(ul, item) {
            return $("<li>")
                    .append("<a><b>" + item.nome + "</b>&nbsp;(" + item.cpf + ")</a>" )
                    .appendTo(ul);
        };
    }
    
    
    var cache_produtos = {};
    
    if ($("#produto").length > 0) {
        $("#produto").autocomplete({
            source:
                    function(request, response) {
                        var term = request.term;
                        if (term in cache_produtos) {
                            response(cache_produtos[ term ]);
                            return;
                        }
                        $.ajax({
                            dataType: "json",
                            url: $('#base_url').val() + '/vendas/busca_produto/',
                            data: 'nome=' + request.term,
                            type: 'POST',
                            success: function(data) {

                                cache_produtos[ term ] = data;
                                response(data);
                                
                            },
                            error: function(data) {

                            }
                        });
                    },
            minLength: 2,
            select: function(event, ui) {

                $("#produto").val(ui.item.nome);
                $("#produto_id").val(ui.item.id);
               
                return false;

            }
        }).data("ui-autocomplete")._renderItem = function(ul, item) {
            return $("<li>")
                    .append("<a><b>" + item.nome + "</b>&nbsp;<br><b>Categoria:&nbsp;</b>" + item.nome_categoria 
                            + "<br><b>Quantidade em estoque:&nbsp;</b>" + item.quantidade
                            + "</a>" )
                    .appendTo(ul);
        };
    }
    
    $('#insere_item').click(function(){
        
        var url = $('#base_url').val() + '/vendas/insere_item';
        
        var produto_id = $('#produto_id').val();
        
        var quantidade = $('#qtd').val();
        
        
        
        $.ajax({
            dataType: "json",
            url: url,
            data: 'produto_id=' + produto_id,
            type: 'POST',
            success: function(produto) {
                
                if(parseInt(produto.quantidade) >= parseInt(quantidade) ){
                    
                    var linha_tabela = '<tr>';
                    
                    linha_tabela += '<td><input name=produto_id[] type="hidden" value="' + produto.id + '"/>' + produto.nome + '</td>';
                    linha_tabela += '<td><input name=quantidade[' + produto.id + '] type="hidden" value="' + quantidade + '"/>'+ quantidade + '</td>';
                    linha_tabela += '<td><input name=preco[' + produto.id + '] type="hidden" value="'+ produto.preco +'"/>' + produto.preco + '</td>';
                    linha_tabela += '<td><input class="total_item" name=total[' + produto.id + '] type="hidden" value="'+(quantidade * produto.preco)+'"/>' + (quantidade * produto.preco)  + '</td>';
                    linha_tabela += '<td>' + '<a href="#" class="btn btn-danger btn-sm remove_item">Remover' + '</td>';
                    
                    linha_tabela += '</tr>';
                    
                    $('#itens_venda').append(linha_tabela);
                    
                    total = total + (quantidade * produto.preco); 
                    $('#total').val(total);
                }
                else{
                    
                    alert('Quantidade indisponível no estoque.');
                }

            },
            error: function(data) {

            }
        });
        
    });
    
    
    $(document).on('click', '.remove_item',function(){
        
        var valor_total_item = $('.total_item', $(this).parent().parent())[0];
        total = $('#total').val();
        total = total - ($(valor_total_item).val()); 
        $(this).parent().parent().remove();
        $('#total').val(total);
    });
    
    $("#cpf").inputmask("999.999.999-99"); 
    
});